package telltale;

/**
 * TellTale
 * 
 * Hosted at http://code.google.com/p/telltale/
 * 
 * zappini@gmail.com
 * 
 * <Appropriate LGPL blurb goes here.>
 */

/**
 * Does nothing. Implementation of the Null Object design pattern. Permits JVM to optimize
 * away all calls to TellTale (true?).
 * 
 */

class 
	NullAdapter 
implements 
	Adapter
{
	public final static NullAdapter NULL = new NullAdapter();
	
	public NullAdapter()
	{
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale)
	 */
	@Override
	public void log( TellTale telltale )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, Object message )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.String, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, String template, Object a )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.String, java.lang.Object, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, String template, Object a, Object b )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, String template, Object a, Object b, Object c )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.String, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, String template, Object... a )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Throwable)
	 */
	@Override
	public void log( TellTale telltale, Throwable throwable )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Throwable, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, Throwable throwable, Object message )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Throwable, java.lang.String, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, Throwable throwable, String template, Object a )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Throwable, java.lang.String, java.lang.Object, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, Throwable throwable, String template, Object a, Object b )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Throwable, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, Throwable throwable, String template, Object a, Object b, Object c )
	{
		// Does nothing
	}
	
	/* (non-Javadoc)
	 * @see telltale.Logger#log(telltale.TellTale, java.lang.Throwable, java.lang.String, java.lang.Object)
	 */
	@Override
	public void log( TellTale telltale, Throwable throwable, String template, Object... a )
	{
		// Does nothing
	}
}

// End of NullFlogger
